package com.lhq.tag_tales.exception;


import com.lhq.tag_tales.common.ErrorCodeEnum;

/**
 * 业务异常类，用于处理业务逻辑中的异常情况
 * 继承自RuntimeException，允许在业务逻辑中抛出未经检查的异常
 */
public class BusinessException extends RuntimeException{
    // 错误代码
    private final  int code;
    // 错误描述
    private final String description;

    /**
     * 构造函数，用于创建基于ErrorCodeEnum及自定义描述的BusinessException对象
     * 允许在使用枚举错误代码的同时，提供更具体的错误描述
     * @param code 包含错误信息的ErrorCodeEnum枚举对象
     * @param description 自定义的错误描述
     */
    public BusinessException(ErrorCodeEnum code, String description) {
        super(code.getMessage());
        this.code = code.getCode();
        this.description = description;
    }

    public BusinessException(ErrorCodeEnum code) {
        super(code.getMessage());
        this.code = code.getCode();
        this.description = code.getDescription();
    }

    /**
     * 获取错误代码
     * @return 错误代码
     */
    public int getCode() {
        return code;
    }

    /**
     * 获取错误描述
     * @return 错误描述
     */
    public String getDescription() {
        return description;
    }
}
